56 research outputs found

    Transferring Arithmetic Decision Procedures (on Z) to Alternative Representations

    Get PDF
    International audienceWe propose a generic approach to make arithmetic decision procedures designed for the concrete data-type Z of Coq available for alternative representations of integers. It is based on a transfer tool recently developped by Zimmermann and Herbelin to perform automatic and transparent transfer of theorems along isomorphisms

    Formalizing a Discrete Model of the Continuum in Coq from a Discrete Geometry Perspective

    No full text
    International audienceThis work presents a formalization of the discrete model of the continuum introduced by Harthong and Reeb, the Harthong-Reeb line. This model was at the origin of important developments in the Discrete Geometry field. The formalization is based on previous work by Chollet, Fuchs et al. where it was shown that the Harthong-Reeb line satisfies the axioms for constructive real numbers introduced by Bridges. Laugwitz-Schmieden numbers are then introduced and their limitations with respect to being a model of the Harthong-Reeb line is investigated. In this paper, we transpose all these definitions and properties into a formal description using the Coq proof assistant. We also show that Laugwitz-Schmieden numbers can be used to actually compute continuous functions. We hope that this work could improve techniques for both implementing numeric computations and reasoning about them in geometric systems

    Pragmatic Isomorphism Proofs Between Coq Representations: Application to Lambda-Term Families

    Get PDF
    There are several ways to formally represent families of data, such as lambda terms, in a type theory such as the dependent type theory of Coq. Mathematical representations are very compact ones and usually rely on the use of dependent types, but they tend to be difficult to handle in practice. On the contrary, implementations based on a larger (and simpler) data structure combined with a restriction property are much easier to deal with. In this work, we study several families related to lambda terms, among which Motzkin trees, seen as lambda term skeletons, closable Motzkin trees, corresponding to closed lambda terms, and a parameterized family of open lambda terms. For each of these families, we define two different representations, show that they are isomorphic and provide tools to switch from one representation to another. All these datatypes and their associated transformations are implemented in the Coq proof assistant. Furthermore we implement random generators for each representation, using the QuickChick plugin

    Journées Francophones des Langages Applicatifs 2018

    Get PDF
    National audienceLes 29èmes journées francophones des langages applicatifs (JFLA) se déroulent en 2018 à l'observatoire océanographique de Banyuls-sur-Mer. Les JFLA réunissent chaque année, dans un cadre convivial, concepteurs, développeurs et utilisateurs des langages fonctionnels, des assistants de preuve et des outils de vérification de programmes en présentant des travaux variés, allant des aspects les plus théoriques aux applications industrielles.Cette année, nous avons sélectionné 9 articles de recherche et 8 articles courts. Les thématiques sont variées : preuve formelle, vérification de programmes, modèle mémoire, langages de programmation, mais aussi théorie de l'homotopieet blockchain

    Spreads and Packings of PG(3,2), Formally!

    Get PDF

    Changements de représentation des données dans le calcul des constructions inductives

    Get PDF
    Dans le calcul des constructions inductives, des outils de calcul et de preuve sont associés à chaque type de données concret défini inductivement. Par conséquent, le choix d'une structure de données influence fortement le contenu des preuves. Nous proposons dans ce document une méthode pour passer plus facilement d'une structure de données à une autre, en effectuant des traductions partiellement automatisées des preuves. Un prototype d'outil de traduction a été développé dans le système Coq et a été expérimenté sur des traductions de preuves de l'arithmétique de Peano vers l'arithmétique binaire

    A proof of GMP square root using the Coq assistant

    Get PDF
    We present a formal proof (at the implementation level) of an efficient algorithm proposed in to compute square roots of arbitrarily large integers. This program, which is part of the GNU Multiple Precision Arithmetic Library (GMP), is completely proven within the system. Proofs are developed using the Correctness tool to deal with imperative features of the program. The formalization is rather large (more than 13000 lines) and requires some advanced techniques for proof management and reuse

    Dealing with arithmetic overflows in the polyhedral model

    Get PDF
    International audienceThe polyhedral model provides techniques to optimize Static Control Programs (SCoP) using some complex transforma- tions which improve data-locality and which can exhibit par- allelism. These advanced transformations are now available in both GCC and LLVM. In this paper, we focus on the cor- rectness of these transformations and in particular on the problem of integer overflows. Indeed, the strength of the polyhedral model is to produce an abstract mathematical representation of a loop nest which allows high-level trans- formations. But this abstract representation is valid only when we ignore the fact that our integers are only machine integers. In this paper, we present a method to deal with this problem of mismatch between the mathematical and concrete representations of loop nests. We assume the exis- tence of polyhedral optimization transformations which are proved to be correct in a world without overflows and we provide a self-verifying compilation function. Rather than verifying the correctness of this function, we use an approach based on a validator, which is a tool that is run by the com- piler after the transformation itself and which confirms that the code produced is equivalent to the original code. As we aim at the formal proof of the validator we implement this validator using the Coq proof assistant as a programming language [4]

    Contributions au développement des méthodes formelles de preuves et applications à la géométrie

    No full text
    L’utilisation des assistants de preuve comme Coq prend de plus en plus d’ampleur. De tels outils permettent de démontrer formellement aussi bien des résultats mathématiques que des propriétés de correction d’algorithmes et de programmes informatiques. La géométrie est un domained’application riche et bien adapté pour mettre à l’épreuve ces systèmes d’aide à la preuve. Dans nos travaux, nous nous intéressons à trois domaines spécifiques de la géométrie : la formalisation d’algorithmes géométriques, l’automatisation au moins partielle des démonstrations dans lecadre de la géométrie projective et enfin la modélisation des nombres réels dans un formalisme bien adapté à la géométrie discrète.Nos premiers travaux en géométrie ont permis de démontrer dans Coq la correction de deux variantes de l’algorithme incrémental de calcul de l’enveloppe convexe d’un ensemble de points du plan en utilisant une approche topologique avec les cartes combinatoires. Ces travaux ont misen évidence le besoin de disposer d’outils pour automatiser au moins partiellement les démonstrations en géométrie. Nous avons alors étudié cette question dans le cadre simple de la géométrie projective en utilisant une approche combinatoire et la notion de rang d’un ensemble de points.L’outil proposé permet de démontrer automatiquement de nombreux théorèmes emblématiques de la géométrie projective et de produire une trace sous la forme d’un script de preuve vérifiable par Coq. Enfin, faire des preuves en géométrie, qu’elles soient automatisées ou non, ne peut sefaire sans disposer d’un modèle informatique des nombres réels. Nous avons formalisé dans Coq la droite d’Harthong-Reeb qui est un modèle du continu ainsi que son implantation informatique avec les entiers de Laugwitz-Schmieden. Ce modèle est bien adapté au contexte de la géométriediscrète et permet notamment de représenter facilement des objets continus de manière discrète en utilisant un schéma d’arithmétisation.Nos travaux ont un double objectif. Il s’agit d’une part de confronter notre expertise en preuves formelles à des problèmes issus de nouveaux domaines et de démontrer que les outils dont nous disposons sont bien adaptés à la réalisation de preuves formelles, notamment en géométrie.D’autre part, de tels travaux permettent de mettre en évidence les points d’amélioration des outils existants et éventuellement d’en accroître la fiabilité, l’efficacité et la facilité d’utilisation
    • …
    corecore